const { contextBridge, ipcRenderer } = require('electron')
const { electronAPI } = require('@electron-toolkit/preload')

// 自定义 API 暴露给渲染进程
const api = {
  // 用户相关 API
  getUsers: () => ipcRenderer.invoke('get-users'),
  createUser: (userData) => ipcRenderer.invoke('create-user', userData),
  
  // 任务相关 API
  getTasks: (userId) => ipcRenderer.invoke('get-tasks', userId),
  createTask: (taskData) => ipcRenderer.invoke('create-task', taskData),
  updateTask: (taskId, updates) => ipcRenderer.invoke('update-task', taskId, updates),
  deleteTask: (taskId) => ipcRenderer.invoke('delete-task', taskId),
  
  // 更新相关 API
  checkForUpdates: () => ipcRenderer.invoke('check-for-updates'),
  downloadUpdate: () => ipcRenderer.invoke('download-update'),
  installUpdate: () => ipcRenderer.invoke('install-update'),
  getUpdateStatus: () => ipcRenderer.invoke('get-update-status'),
  
  // 监听更新状态变化
  onUpdateStatus: (callback) => {
    ipcRenderer.on('update-status', (event, data) => callback(data))
    return () => ipcRenderer.removeAllListeners('update-status')
  }
}

// 使用 contextBridge API 暴露 Electron APIs
if (process.contextIsolated) {
  try {
    contextBridge.exposeInMainWorld('electron', electronAPI)
    contextBridge.exposeInMainWorld('api', api)
  } catch (error) {
    console.error(error)
  }
} else {
  window.electron = electronAPI
  window.api = api
}